箭頭函式是從 JavaScript ES6版本開始出現的新概念,功能是把函式(function)的語法簡化,讓我們可以少打很多字,也可以提高語法的可讀性,簡單來說就是 function 的語法糖。可能很多人會想說學這個跟整人有什麼關係,其實LIFF API用了很多箭頭函式的寫法,怕看不懂所以還是講一下好了。
在 JavaScript 中函式的寫法不止一種,即使是普通函式也有兩種寫法,下面是兩種普通函式的語法和架構:
function
當開頭宣告函式。範例如下:function calc(n){
n = n + 1;
return n*n;
}
let calc = function(n){
n = n + 1;
return n*n;
}
箭頭函式有三個重點:
函式傳入參數
和{}區域
語法之間加入一個肥箭頭=>
(不是瘦箭頭->
){}
和不可省略{}
兩種因為可省略{}
和不可省略{}
的箭頭函式寫不同,所以分兩部分介紹:
{}
的箭頭函式{}
的原因是除了 return 回傳值之外還有別的程式碼包含在{}
區塊中,因此無法省略{}
。實際範例如下:var calculate = (n) => {
n = n + 1;
return n*n;
};
{}
的箭頭函式{}
和 return ,如果都不省略的話也可以,但是要省略的話就要兩個一起省略,不然會導致沒有回傳值的問題。var calculate = (n) => n*n;
也可以把回傳值用()
包起來:
var calculate = (n) => (n*n);
如果只省略 return 沒省略{}
會怎樣?
雖然這樣寫函式不會出現語法錯誤,但是呼叫函式時不會出現回傳值,所以要記得可省略{}
的箭頭函式的寫法就是全有全無制,要嘛就全部省略要嘛就都不要省略。